/**
 * 给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
 * 请注意 ，必须在不复制数组的情况下原地对数组进行操作
 */
public class Test283 {

    public static void main(String[] args) {
        int[] arr = {1,0};
        moveZeroes(arr);
        System.out.println("=======");
    }

    public static void moveZeroes(int[] nums) {
        int i0 = 0;
        int iNo0 = 0;
        while (i0 < nums.length && iNo0 < nums.length) {
            while (i0 < nums.length && nums[i0] != 0){
                i0++;
            }
            while (iNo0 < nums.length && nums[iNo0] == 0){
                iNo0++;
            }
            if (i0 < nums.length && iNo0 < nums.length ){
                if (i0 < iNo0){
                    swap(nums,i0,iNo0);
                }
                i0++;
                iNo0++;
            }
        }
    }
    public static void swap(int[] arr,int i,int j){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}
